define([
    'Util',
    '../common/getMenu',
    'list',
    'form',
    'text!tpl/CIPipelining/NewlyBuild.tpl',
    'cookie',
    'dialog',
    'select',
    'tab',
    'loading',
    'comboSelect',
    '../common/getPath',
    '../common/getQueryString',
    'date',
    'inputTag',
    '../common/dateFormat',

], function(Util, getMenu, List, Form, tpl, $cookie, Dialog, Select, Tab, Loading,ComboSelect, AjaxPath, GetQueryString, MyDate, inputTag) {
    require(['style!css/style.css']);
    var _indexModule = null,
        $el = null,
        caseOption = null,
        caseList = null,
        caseTab = null,
        tplId = null,
        caseTypeSelect=null,
        statusSelect=null,
        handLoading = null,
        loadingConfig=null,
        moduleListSelect=null,
        iterationSelect=null,
        createTimeDate = null,
        updateTimeDate = null,
        comboSelect=null,    //多选标签
        Authority = null,     //用户权限按钮判断；
        dialogAuthority=null;//查看项目信息浮层修改项目按钮判断；

    var initialize = function(indexModule, options, tabItem){
        $el = $(tpl);
        this.content=$el;
        // _indexModule = indexModule;//露西的参数
        // caseOption=options;//露西的参数
        // caseTab = tabItem;//右边的容器
        // console.log(tabItem)//右边的容器
        caseSelect();
        eventInit();
    };
    var eventInit = function (){
        //页面除dialog按钮功能
        // $el.on('click', '.btnReset',NewlyBuild);
        $el.on('click','#new_subtest',new_subtest)
    };
    // 连通测试状态查看弹出层
    var new_subtest = function(){
        var config = {
            mode: 'confirm', //对话框模式，默认normal标准|tips浮动层|confirm确认对话框
            title: '连通测试', //对话框标题，
            content: 'aaas', //对话框内容，可以是字符串、html代码段,tpl对象。默认为loading状态（由点组成的圈。大段代码建议使用 tpl。
            ok: function() {
                return true;
            },
            cancel: function() {
                return true;
            },
            cancelValue: '返回', //取消按钮的文本 默认是 ‘关闭’
            okValue: '返回', //取消按钮的文本 默认是 ‘关闭’
            cancelDisplay: false, //是否显示取消按钮 默认true显示|false不显示
            width: 500, //对话框宽度，normal默认值为600，confirm默认值为300，tips默认值为240
            // height: parseInt($(".sn-tab.J_tab_render").height()*0.8), //对话框高度，normal默认值为400，confirm默认值为180，tips默认值为80
            // maxWidth: 240,//设置tips对话框的最大宽度,默认为240px。仅在tips对话框下生效，该项存在时，width属性将失效。
            maxHeight: 'auto', //设置tips对话框的最大高度,默认为auto。仅在tips对话框下生效，该项存在时，height属性将失效。
            padding:'0 16px 1em 10px',//(默认值: 继承 css 文件设置) 设置消息内容与消息容器的填充边距，即 style padding属性
            align: 'bottom left',//设置对话框与其他元素的对齐方式。仅在show(elem)与showModal(elem)传入元素时生效。默认值: "bottom left"。可选："top left" "top" "top right" "right top" "right" "right bottom" "bottom right" "bottom" "bottom left" "left bottom" "left" "left top"。
            skin: 'dialogSkin dialogSkin2',//设置对话框额外的className参数,多个className请使用空格隔开。
            fixed: false, //是否开启固定定位 默认false不开启|true开启
            quickClose: false, //点击空白处快速关闭 默认false不关闭|true关闭
            modal: true ,//是否开启模态框状态  默认false不开启|true开启,confirm默认状态为true
            backdropBackground:'#000',//设置遮罩颜色，默认 #000。
            backdropOpacity:0.7, //设置遮罩透明度，默认 0.7，取值范围：0~1 。
            beforeOpen: function() {
            }, //对话框打开之前执行。
            escClose:true,//esc键快速关闭对话框，默认为true
            zIndex:700   // 对话框的z-index值，默认是1024。
        };
        new Dialog(config);
    }
    // 保存

    // 取消

    var tabActive = function() {

    };
    var search = function(pageIndex) {

    };
    /*用例下拉*/
    var caseSelect = function() {
        //用例类型
        var data = [
            {
                "name":"11111",
                "value":"136123456",
                "address":"郑州"
            }
        ]
        // Jenkins  选择下拉
        Util.ajax.getJson( AjaxPath.project + "/dropdown?modual=testCase&type=caseType", {}, function(result, isok){
            caseTypeSelect = new Select({
                el:$("#new_Jenkins_Choice", $el),       //要绑定的容器
                ajax:{    //所有jquery.ajax的配置项均可配置，这些配置将替换底层组件的配置，<span class="s">慎用</span>
                    method:'GET'
                },
                width:200,
                label:'<span class="color-red">*</span>Jenkins选择:', //下拉框单元左侧label文本，可不配置
                selectText:false,       //是否显示  ‘选择|清除’  模式
                name:'caseType',    //下拉框单元右侧下拉框名称
                disabled:false,     //组件是否被禁用
                topOption:"请选择", //设置最顶部option的text属性
                value:'',//初始选中项设置 默认是按value，如果你想按id设置 也可以 value:[&quot;id&quot;,1],这样设置
                textField:"name",   //设置下拉框内容，填写数据中对应的字段名
                valueField:"value",//设置下拉框value，填写数据中对应的字段名
                datas: data,         //数据源
                loadAtClick:false,// true--第一次点击时渲染|false或不配置--初始化时渲染
                dataReady:function(){
                    //console.log("获取工作项类型");
                } //select的DOM结构加载完后执行
                //  url:'../data/select.json'  //数据源，不建议使用，后期将会移除
            });
            caseTypeSelect.setValue(0);
        });
        // Gitlab  选择下拉
        Util.ajax.getJson( AjaxPath.project + "/dropdown?modual=testCase&type=caseType", {}, function(result, isok){
            caseTypeSelect = new Select({
                el:$("#new_Gitlab_Choice", $el),       //要绑定的容器
                ajax:{    //所有jquery.ajax的配置项均可配置，这些配置将替换底层组件的配置，<span class="s">慎用</span>
                    method:'GET'
                },
                width:200,
                label:'<span class="color-red">*</span>Gitlab选择:', //下拉框单元左侧label文本，可不配置
                selectText:false,       //是否显示  ‘选择|清除’  模式
                name:'caseType',    //下拉框单元右侧下拉框名称
                disabled:false,     //组件是否被禁用
                topOption:"请选择", //设置最顶部option的text属性
                value:'',//初始选中项设置 默认是按value，如果你想按id设置 也可以 value:[&quot;id&quot;,1],这样设置
                textField:"name",   //设置下拉框内容，填写数据中对应的字段名
                valueField:"value",//设置下拉框value，填写数据中对应的字段名
                datas: data,         //数据源
                loadAtClick:false,// true--第一次点击时渲染|false或不配置--初始化时渲染
                dataReady:function(){
                    //console.log("获取工作项类型");
                } //select的DOM结构加载完后执行
                //  url:'../data/select.json'  //数据源，不建议使用，后期将会移除
            });
            caseTypeSelect.setValue(0);
        });
        // Gitlab  分支下拉
        Util.ajax.getJson( AjaxPath.project + "/dropdown?modual=testCase&type=caseType", {}, function(result, isok){
            caseTypeSelect = new Select({
                el:$("#new_Gitlab_branch", $el),       //要绑定的容器
                ajax:{    //所有jquery.ajax的配置项均可配置，这些配置将替换底层组件的配置，<span class="s">慎用</span>
                    method:'GET'
                },
                width:200,
                label:'<span class="color-red">*</span>分支:', //下拉框单元左侧label文本，可不配置
                selectText:false,       //是否显示  ‘选择|清除’  模式
                name:'caseType',    //下拉框单元右侧下拉框名称
                disabled:false,     //组件是否被禁用
                topOption:"请选择", //设置最顶部option的text属性
                value:'',//初始选中项设置 默认是按value，如果你想按id设置 也可以 value:[&quot;id&quot;,1],这样设置
                textField:"name",   //设置下拉框内容，填写数据中对应的字段名
                valueField:"value",//设置下拉框value，填写数据中对应的字段名
                datas: data,         //数据源
                loadAtClick:false,// true--第一次点击时渲染|false或不配置--初始化时渲染
                dataReady:function(){
                    //console.log("获取工作项类型");
                } //select的DOM结构加载完后执行
                //  url:'../data/select.json'  //数据源，不建议使用，后期将会移除
            });
            caseTypeSelect.setValue(0);
        });
        // 代码语言
        Util.ajax.getJson( AjaxPath.project + "/dropdown?modual=testCase&type=caseType", {}, function(result, isok){
            caseTypeSelect = new Select({
                el:$("#new_CodeLanguage", $el),       //要绑定的容器
                ajax:{    //所有jquery.ajax的配置项均可配置，这些配置将替换底层组件的配置，<span class="s">慎用</span>
                    method:'GET'
                },
                width:200,
                label:'<span class="color-red">*</span>代码语言:', //下拉框单元左侧label文本，可不配置
                selectText:false,       //是否显示  ‘选择|清除’  模式
                name:'caseType',    //下拉框单元右侧下拉框名称
                disabled:false,     //组件是否被禁用
                topOption:"请选择", //设置最顶部option的text属性
                value:'',//初始选中项设置 默认是按value，如果你想按id设置 也可以 value:[&quot;id&quot;,1],这样设置
                textField:"name",   //设置下拉框内容，填写数据中对应的字段名
                valueField:"value",//设置下拉框value，填写数据中对应的字段名
                datas: data,         //数据源
                loadAtClick:false,// true--第一次点击时渲染|false或不配置--初始化时渲染
                dataReady:function(){
                    //console.log("获取工作项类型");
                } //select的DOM结构加载完后执行
                //  url:'../data/select.json'  //数据源，不建议使用，后期将会移除
            });
            caseTypeSelect.setValue(0);
        });
        // 打包方式
        Util.ajax.getJson( AjaxPath.project + "/dropdown?modual=testCase&type=caseType", {}, function(result, isok){
            caseTypeSelect = new Select({
                el:$("#new_PackingMethod", $el),       //要绑定的容器
                ajax:{    //所有jquery.ajax的配置项均可配置，这些配置将替换底层组件的配置，<span class="s">慎用</span>
                    method:'GET'
                },
                width:200,
                label:'<span class="color-red">*</span>打包方式:', //下拉框单元左侧label文本，可不配置
                selectText:false,       //是否显示  ‘选择|清除’  模式
                name:'caseType',    //下拉框单元右侧下拉框名称
                disabled:false,     //组件是否被禁用
                topOption:"请选择", //设置最顶部option的text属性
                value:'',//初始选中项设置 默认是按value，如果你想按id设置 也可以 value:[&quot;id&quot;,1],这样设置
                textField:"name",   //设置下拉框内容，填写数据中对应的字段名
                valueField:"value",//设置下拉框value，填写数据中对应的字段名
                datas: data,         //数据源
                loadAtClick:false,// true--第一次点击时渲染|false或不配置--初始化时渲染
                dataReady:function(){
                    //console.log("获取工作项类型");
                } //select的DOM结构加载完后执行
                //  url:'../data/select.json'  //数据源，不建议使用，后期将会移除
            });
            caseTypeSelect.setValue(0);
        });
        // Docker选择
        Util.ajax.getJson( AjaxPath.project + "/dropdown?modual=testCase&type=caseType", {}, function(result, isok){
            caseTypeSelect = new Select({
                el:$("#new_Docker", $el),       //要绑定的容器
                ajax:{    //所有jquery.ajax的配置项均可配置，这些配置将替换底层组件的配置，<span class="s">慎用</span>
                    method:'GET'
                },
                width:200,
                label:'<span class="color-red">*</span>Docker选择:', //下拉框单元左侧label文本，可不配置
                selectText:false,       //是否显示  ‘选择|清除’  模式
                name:'caseType',    //下拉框单元右侧下拉框名称
                disabled:false,     //组件是否被禁用
                topOption:"请选择", //设置最顶部option的text属性
                value:'',//初始选中项设置 默认是按value，如果你想按id设置 也可以 value:[&quot;id&quot;,1],这样设置
                textField:"name",   //设置下拉框内容，填写数据中对应的字段名
                valueField:"value",//设置下拉框value，填写数据中对应的字段名
                datas: data,         //数据源
                loadAtClick:false,// true--第一次点击时渲染|false或不配置--初始化时渲染
                dataReady:function(){
                    //console.log("获取工作项类型");
                } //select的DOM结构加载完后执行
                //  url:'../data/select.json'  //数据源，不建议使用，后期将会移除
            });
            caseTypeSelect.setValue(0);
        });




        // 代码库
        Util.ajax.getJson( AjaxPath.project + "/dropdown?modual=testCase&type=caseType", {}, function(result, isok){
            var config = {
                el:'#new_CodeBase',       //要绑定的容器
                name:'userName',    //下拉框单元添加name属性
                checked:'0',        //默认选中
                datas: data         //数据源与url模式可二选一
            }
           var new_CodeBase = new ComboSelect(config);
        });
        //状态，status;
        Util.ajax.getJson( AjaxPath.project + "/dropdown?modual=testCase&type=caseStatus", {}, function(result, isok){
            statusSelect = new Select({
                el:$("#statusName", $el),       //要绑定的容器
                ajax:{    //所有jquery.ajax的配置项均可配置，这些配置将替换底层组件的配置，<span class="s">慎用</span>
                    method:'GET'
                },
                label:'状态:', //下拉框单元左侧label文本，可不配置
                selectText:false,       //是否显示  ‘选择|清除’  模式
                name:'caseStatus',    //下拉框单元右侧下拉框名称
                disabled:false,     //组件是否被禁用
                topOption:"请选择", //设置最顶部option的text属性
                value:'',//初始选中项设置 默认是按value，如果你想按id设置 也可以 value:[&quot;id&quot;,1],这样设置
                textField:"value",   //设置下拉框内容，填写数据中对应的字段名
                valueField:"key",//设置下拉框value，填写数据中对应的字段名
                datas: result.beans,         //数据源
                loadAtClick:false,// true--第一次点击时渲染|false或不配置--初始化时渲染
                dataReady:function(){
                    console.log("获取状态");
                } //select的DOM结构加载完后执行
                //  url:'../data/select.json'  //数据源，不建议使用，后期将会移除
            });
            // $("#projectManage .sn-select-container").addClass("mt-5");
            statusSelect.setValue(0);
        });
    };
    // 判断用户权限是否可见：新增工作项，删除选中，导出选中，全部导出，按钮并显示；
    var btnAuthority = function($el){
        require(['js/btnAuthority'], function(Authority){
            new Authority($el);
        });

    };
    return initialize;
});